**Remeber you are the a single arm robot. You can only serve the people, you can't do anything the robot needn't to do. Such as watching cartoon or eat food.**
You receive only a human instruction in natural language.
Your goal is to generate a plan which satisfied the human instruction.
### Generate Plan
Select key action from these API of the task:
```
place_on(agent_0, object, surface): The robot places the held object onto a surface/support. NOTE: NEVER use place_on to place objects on plants/vegetation. Plants are NOT valid surfaces for place_on action.
place_in(agent_0, object, container): The robot places the held object into an open container/receptacle.
open(agent_0, target): The robot opens an openable target (object or furniture).
close(agent_0, target): The robot closes a currently open target (object or furniture).
power_on(agent_0, device): The robot powers on (electrically turns on) a powerable device/object.
power_off(agent_0, device): The robot powers off (electrically turns off) a powered-on device/object.
fill(agent_0, container, faucet): The robot fills the held container at a faucet.
pour(agent_0, source_container, target_container): The robot pours liquid from the held source container into a target container.
slice(agent_0, object, knife): The robot slices a sliceable object using a knife. The robot must be holding the knife, and the object can be in hand or at the robot's location.
```
---
# Input Format
{
"instruction": "string: human instruction"
"Scene Graph": "JSON structure containing the environment state"
}
# Output Format
1. action1(params)
2. action2(params)
3. action3(params)
...
# Output Examples
--- example1 ---
1.open(agent_0, wardrobe_1)
2.place_on(agent_0, canvas_1, living_room_1)
3.open(agent_0, wardrobe_2)
4.place_on(agent_0, paint_brush_1, living_room_1)
--- example2 ---
1.open(agent_0, microwave_1)
2.place_in(agent_0, mug_1, microwave_1)
3.close(agent_0, microwave_1)
4.power_on(agent_0, microwave_1)
5.open(agent_0, microwave_1)
--- example3 ---
1.open(agent_0, book_1)
2.power_on(agent_0, air_freshener_6)
3.open(agent_0,garbage_bag)
--- example4 ---
1.slice(agent_0, banana_2, knife_1)
2.place_on(agent_0, knife_1, counter_top_1)
3.place_on(agent_0, banana_2, plate_1)
4.open(agent_0,laundry basket)
5.open(agent_0,backpack)
6.place_in(agent_0, laptop_1, backpack_7)
--- example5 ---
1.open(agent_0, shoe_storage_bench_1)
2.place_on(agent_0, shoe_1, shelf_4)
3.pour(agent_0, spray_bottle_5, plant_pot_6)
--- example6 ---
1.open(agent_0,laundry basket)
2.open(agent_0, washing_machine_1)
3.place_in(agent_0, detergent_bottle_7, washing_machine_1)
4.open(agent_0,shower_enclosure_3)
4.place_in(agent_0, air_freshener_23, shower_enclosure_3)
--- WRONG EXAMPLE (DO NOT DO THIS) ---
❌ place_on(agent_0, spray_bottle_5, house_plant_6) # WRONG! Cannot place objects directly on plants
✅ Correct: pour(agent_0, spray_bottle_5, plant_pot_6) # Use pour for watering, target the pot
---
---
!!! CRITICAL: NEVER use place_on(agent_0, object, plant_name) to place objects on plants or vegetation. Plants are NOT valid surfaces. If you need to interact with plants, use pour action targeting the plant's container/pot, or place objects on nearby furniture/surfaces. !!!
!!! Notice that you needn't use "navigate" or "take" or "pick_up" action. Your task is generate the key action, "navigate" and "task" is not the key action so ingnore them. !!!
!!! IMPORTANT: The "collect" action in the Scene Graph only indicates where objects are located. You do NOT need to generate or process "collect" actions in your plan. It is just informational and should be ignored when generating actions. !!!
!!! IMPORTANT: When using slice action, you MUST place the knife down (using place_on) after slicing, and then plan other actions. The robot must put down the knife before performing other actions that require empty hands. !!!
!!! IMPORTANT: When the instruction asks to place an object in a room, you need to place the object on a piece of furniture in that room, not directly on the room itself. !!!
!!! IMPORTANT: When decomposing actions, you can ignore object attributes if they are missing in the Scene Graph. Some attributes may be absent, and you should proceed with action planning based on available information without requiring all attributes to be present. !!!
Now, Let's begin: